package com.controller;

import java.io.File;
import java.net.URLEncoder;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import com.po.customer;
import com.service.customerservice;

@Controller
public class uploadcontrol {
	
	@Autowired
	private customerservice customerservice;
	
	@RequestMapping("/fileupload")
	/* 因为前端传过来的参数必须和这里的形参相同，所以可以用@RequestParam("name")保证相同 */
	/* name是文件名，file是文件集合 */
	public String fileupload(@RequestParam("file") List<MultipartFile> file,
			HttpServletRequest request) {
		/* 判断文件是否存在 */
		if (file.size() > 0 && !file.isEmpty()) {
			for (MultipartFile i : file) {
//				获取文件名
				String filename = i.getOriginalFilename();
//				设置上传文件的保存路径
				String dirpath = request.getServletContext().getRealPath("/upload/");
//				创建文件对象
				File filePath = new File(dirpath); 
				// 如果保存文件的地址不存在，就先创建目录
				if (!filePath.exists()) {
					filePath.mkdirs();
				}
				// 使用UUID重新命名上传的文件名称(上传人_uuid_原始文件名称)
				String newFilename = filename;
				System.out.println(dirpath);
				try {
					// 使用MultipartFile接口的方法完成文件上传到指定位置
					i.transferTo(new File(dirpath + newFilename));
					//判断是否是excel文件
					//输出excel文件里的结果
//					System.out.println(newFilename);
					 String[] strArray = newFilename.split("\\.");
//					 for (int j=0 ;j<strArray.length;j++) {
//						 System.out.println(strArray[j]);
//					 }
					 
					 if(strArray[1].equals("xlsx") || strArray[1].equals("xls")) {
						 System.out.println("enter");
						 List<customer> customerlist = Poi.test(dirpath + newFilename);
						 //添加用户
						 for (int j=0;j<customerlist.size();j++) {
							System.out.println(customerlist.get(j));
							customerservice.addcustomer(customerlist.get(j));
						 }
						 
					 }else {
						 return "error";
					 }
					
					
				} catch (Exception e) {
					e.printStackTrace();
                       return "error";
				}
			}
			// 跳转到成功页面
			return "success";
			
		} else { 
			return "error";
		}
	}
	
	
	/**
	 * 根据浏览器的不同进行编码设置，返回编码后的文件名
	 */
	public String getFilename(HttpServletRequest request,
	                                            String filename) throws Exception { 
	    // IE不同版本User-Agent中出现的关键词
	    String[] IEBrowserKeyWords = {"MSIE", "Trident", "Edge"};  
	    // 获取请求头代理信息
	    String userAgent = request.getHeader("User-Agent");  
	    for (String keyWord : IEBrowserKeyWords) { 
	         if (userAgent.contains(keyWord)) { 
	              //IE内核浏览器，统一为UTF-8编码显示
	              return URLEncoder.encode(filename, "UTF-8");
	         }
	    }  
	    //火狐等其它浏览器统一为ISO-8859-1编码显示
	    return new String(filename.getBytes("UTF-8"), "ISO-8859-1");  
	}  
}
